Since the inception of computer networks, the size of networks has grown exponentially. Today, any number of computing devices may be connected over a network, and data and services provided by those devices may be accessed from any number of locations. With that growth, the complexity of managing and troubleshooting networks has dramatically increased.
At the same time a new set of applications in the area of data centers and cloud computing are pushing the requirements of dynamic provisioning and dynamic instantiation of the network infrastructure. These requirements are rapidly expanding in other segments of the IT infrastructures where networking applies.
In traditional computer networks, data paths are implemented by interconnecting switches, routers, and other network devices throughout the network. Traditional computer networks can be too rigid and complex for these new environment requirements. Network virtualization is a set of evolving concepts aiming at allowing network administrators to have control over traffic across the network without physically modifying network devices. Network virtualization is one of the use cases usually associated to software defined networking solutions.